package stringbuilder01;
/*
    append()方法：不断向容器的末尾追加任意类型的数据

     StringBuilder append(boolean b)
          将 boolean 参数的字符串表示形式追加到序列。

     StringBuilder append(char c)
          将 char 参数的字符串表示形式追加到此序列。

     StringBuilder append(char[] str)
          将 char 数组参数的字符串表示形式追加到此序列。

     int length()
          返回长度（字符数）。

     String substring(int start, int end)
          返回一个新的 String，它包含此序列当前所包含字符的子序列。

     StringBuilder delete(int start, int end)
          移除此序列的子字符串中的字符。

     StringBuilder reverse()  //反转容器中的内容
          将此字符序列用其反转形式取代。

 */
public class StringBuilderDemo03 {
    public static void main(String[] args) {
        //method01();

        //method02();

        //method03();

        //method04();

        //method05();

        StringBuilder sb = new StringBuilder("a2mcd");
        sb.reverse();
        System.out.println(sb);//dcm2a

    }

    private static void method05() {
        StringBuilder sb = new StringBuilder("losnk");
        sb.delete(1, 3);  //含头不含尾
        System.out.println(sb);//lnk  删除范围 [starIndex,endIndex-1]
        //delete 直接删除容器中的字符，改变了容器的内容
    }

    private static void method04() {
        StringBuilder sb = new StringBuilder("afkln");
        String subStr = sb.substring(1, 3);// 含头不含尾
        System.out.println(subStr);//fk  截取范围 [starIndex,endIndex-1]
    }

    private static void method03() {
        StringBuilder sb = new StringBuilder();
        sb.append("def");
        sb.append("123");
        System.out.println(sb.length());//"def123"6
    }

    //append方法
    private static void method02() {
        StringBuilder sb = new StringBuilder("cd");
        char[] chars = {'3', 'a'};
        sb.append(chars);
        sb.append(false);
        System.out.println(sb);//cd3afalse
    }
//append方法
    private static void method01() {
        StringBuilder sb = new StringBuilder();//空的容器
        sb.append(5);   //append()方法其实就是向容器中追加数据
        System.out.println(sb);//5
        sb.append("abc");
        System.out.println(sb);//5abc
    }
}
